/*
    node的全局对象是global对象
        global属性和方法
            名称                返回值       作用
            __dirname           Stirng      当前模块的所在的文件夹
            __filename          String      当前模块的文件名
            process             Object      当前Node.js进程的有关信息，以及控制当前Node.js进程
                platform        String      当前进程的操作系统类型
                memoryUsage()   Object      返回Node.js进程的内存使用情况的 对象， 该对象每个属性值的单位为字节
                argv            Array
                kill()                 
            console
                console.log 
                console.dir
                console.time(label)                 启动一个定时器 , 以唯一的label作为标识 ， 当调用console.timeEnd()时 ， 可以使用相同的label来停止定时器 ， 并输出以毫秒为单位的时间
                console.timeEnd(label)              与console.time() 成对使用
*/
/**
 *  fs.readFileSync
 *  fs.readFile
 *  */ 

/*
    require
    Node.js require函数是将模块导入到当前文件的主要方式
    在Node.js中有三种模块： 核心模块，文件模块， 和外部node_modules
    使用require函数值给你module.exports变量 ， 就相当于是引入了模块对象 ，但是需要将结果分配给本地的变量
    阻塞
        require函数之后代码会被执行 ， 直到模块被加载和执行
    缓存
        第一次对特性文件进行require调用后 ， 将缓存module.exports

*/

//这个就是在引入模块 ， 引入fs（文件读取模块）
const fs = require("fs");
console.log(__dirname);
console.log(__filename);

let filePath = __dirname + "/global.html";
let fileContent = fs.readFileSync(filePath);

console.log(fileContent.toString());

console.log(process.platform);

/*
    实现文件路径的拼接
*/
// switch(process.platform) {
//     case "linux" : 
//         filePath = __dirname + "/global.html"
//     case "win32" :
//         filePath = __dirname + "\\global.html"
//     default:
//         console.log("other platform");
// }


// 引入的这个path模块 ， 这个时候做文件路径的拼接就会有模块自动的进行拼接 ， 会自顶的考虑操作系统
// const path = require("path");
// filePath = path.join(__dirname , 'global.html');
// console.log(filePath);

//---------------------------------------------------

// console.time("test");
// let sum = 0;
// for(let i = 1 ; i <= 100 ; i++) {
//     sum += i;
// }

// console.timeEnd("test");


//---------------------------------------------------
// process.argv
console.log(process.argv);
// node.js的可执行程序的路径
console.log(process.argv[0]);
// node.js当前执行的程序的路径
console.log(process.argv[1]);
//传入命令行参数
//写法 ， node <程序> 参数1 参数2 参数3....
/**
 * 编写命令行应用程序时，有时需要传入不同的参数，让程序执行不同的操作
 * 
*/
console.log(process.argv[2]);
console.log(process.argv[3]);
console.log(process.argv[4]);

// process.kill();
